/**
子序列是由数组派生而来的序列，删除（或不删除）数组中的元素而不改变其余元素的顺序。例如，[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

输入：nums = [10,9,2,5,3,7,101,18]
输出：4
解释：最长递增子序列是 [2,3,7,101]，因此长度为 4 。
*/

class Solution {
    public int lengthOfLIS(int[] nums) {
        if(nums.length==0){ return 0;}
        int[] dp=new int[nums.length];
        for(int i=0;i<nums.length;i++){
            dp[i]=1;
        }
        int max=1;
        for(int i=1;i<nums.length;i++){
           for(int j=0;j<i;j++){
               if(nums[j]<nums[i]){
                   dp[i]=Math.max(dp[i],dp[j]+1) ; //注意，不是递增的，所有可能dp[i]的值比dp[j]+1大
               }
           }
           max=Math.max(max,dp[i]);

        }
        return max;
    }

}